home *** CD-ROM | disk | FTP | other *** search
/ Suzy B Software 2 / Suzy B Software CD-ROM 2 (1994).iso / extras / programm / gemfsc20 / gemfsc20.lzh / GEMFUNCS / RCSCALE.C < prev    next >
C/C++ Source or Header  |  1992-11-05  |  1KB  |  37 lines

  1. /**************************************************************************
  2.  * RCSCALE.C -    Scale sourcerect into destrect using specified percentage.
  3.  *                The destination rectangle is g'teed to have width and
  4.  *                height values of at least 1, since GEM and other lib
  5.  *                library routines puke on no-area rectangles.
  6.  *************************************************************************/
  7.  
  8. #include "gemfintl.h"
  9.  
  10. GRECT *rc_scale(psource, pdest, percentage)
  11.     register GRECT *psource;
  12.     register GRECT *pdest;
  13.     register short      percentage;
  14. {
  15.     register short wdest;
  16.     register short hdest;
  17.     register short wsource;
  18.     register short hsource;
  19.  
  20.     if (percentage < 0) {
  21.         percentage = 100;
  22.     }
  23.  
  24.     wsource = psource->g_w;
  25.     hsource = psource->g_h;
  26.  
  27.     wdest = (short)((wsource * (long)percentage) / 100);
  28.     hdest = (short)((hsource * (long)percentage) / 100);
  29.  
  30.     pdest->g_x = psource->g_x + ((wsource - wdest) / 2);
  31.     pdest->g_y = psource->g_y + ((hsource - hdest) / 2);
  32.     pdest->g_w = wdest ? wdest : 1;
  33.     pdest->g_h = hdest ? hdest : 1;
  34.  
  35.     return pdest;
  36. }
  37.